import logging

"""
配置输出到多个位置
"""

# 新增两个打印者：并自定义打印者的位置
log1 = logging.getLogger('log1')
log2 = logging.getLogger('log2')
# 1. 输出到两个位置和控制台
handle1 = logging.FileHandler('log/a.log', encoding='utf-8')
handle2 = logging.FileHandler('log/b.log', encoding='utf-8')
handle3 = logging.StreamHandler()
# 2. 为输出者绑定输出位置
log1.addHandler(handle1)
log1.addHandler(handle2)
log2.addHandler(handle2)
log2.addHandler(handle3)

# 3. 输出格式设置
fmt = logging.Formatter('%(asctime)s [%(name)s] -%(msg)s')
fmt2 = logging.Formatter('%(asctime)s -%(msg)s')
# 将格式绑定给handler
handle1.setFormatter(fmt)
handle2.setFormatter(fmt)
handle3.setFormatter(fmt2)
# 4.级别控制,把warning级别的记录到文件里面，debug打印到控制台空开发者查看
"""
打印者规定打印级别，输出位置（句柄）再进行二次限定:比如这里设置log2后
debug级别以上的信息会输出到控制台
warning级别以上的才会输出到文件里面
"""
log2.setLevel(logging.DEBUG)
handle2.setLevel(logging.WARNING)
handle3.setLevel(logging.DEBUG)
# 5. 输出
log2.debug("log2 debug信息")
log2.info("log2 info 信息")
log2.warning("log2 warning信息")
log2.error("log2 error 信息")
log2.critical('log2 输出的 critical msg ')
log1.critical('log1 输出的 critical msg ')
